package com.tripcube.ai.service;

import com.tripcube.ai.model.dto.BaseChatDTO;
import com.tripcube.ai.model.vo.BaseChatVO;
import reactor.core.publisher.Flux;

/**
 * 基础聊天服务接口
 * 提供AI聊天相关的基础功能服务
 * 
 * @author alander
 */
public interface BaseChatService {
    
    /**
     * 简单聊天
     * 提供基础的AI对话功能，返回完整的聊天响应
     * 
     * @param request 聊天请求参数
     * @return 聊天响应结果
     */
    BaseChatVO simpleChat(BaseChatDTO request);

    /**
     * 流式聊天
     * 提供流式AI对话功能，实时返回聊天内容
     * 
     * @param request 聊天请求参数
     * @return 流式聊天响应
     */
    Flux<String> streamChat(BaseChatDTO request);

    /**
     * 带对话记忆的聊天
     * 提供具有上下文记忆功能的AI对话，支持多轮对话
     * 
     * @param request 聊天请求参数，需包含会话ID
     * @return 流式聊天响应
     */
    Flux<String> advisorChat(BaseChatDTO request);
}